import { MenuTypeEnum } from '@/enums/MenuTypeEnum';

/**
 * 菜单查询参数类型
 */
export interface MenuQuery {
  name?: string;
}

/**
 * 菜单视图对象类型
 */
export interface MenuVO {
  /**
   * 子菜单
   */
  children?: MenuVO[];
  /**
   * 组件路径
   */
  path?: string;
  /**
   * ICON
   */
  icon?: string;
  /**
   * 菜单ID
   */
  id?: number;
  /**
   * 菜单名称
   */
  name?: string;
  /**
   * 父菜单ID
   */
  pid?: number;
  /**
   * 路由路径
   */
  route?: string;
  /**
   * 菜单排序(数字越小排名越靠前)
   */
  sort?: number;
  /**
   * 菜单类型
   */
  type?: MenuTypeEnum;
  /**
   * 菜单是否可见(1:显示;0:隐藏)
   */
  visible?: number;
}

/**
 * 菜单表单对象类型
 */
export interface MenuForm {
  /**
   * 菜单ID
   */
  id?: string;
  /**
   * 父菜单ID
   */
  pid?: number;
  /**
   * 菜单名称
   */
  name?: string;
  /**
   * 状态(1:正常;0:隐藏;)
   */
  status: number;
  /**
   * 菜单是否可见(1:是;0:否;)
   */
  is_show: number;
  icon?: string;
  /**
   * 排序
   */
  sort: number;
  /**
   * 组件路径
   */
  path?: string;
  /**
   * 组件路由，前端使用
   */
  menu_path?: string
  /**
   * 路由路径，后端使用
   */
  route?: string;

  /**
   * 请求方式
   */
  method?: string

  /**
   * 菜单类型
   */
  type: MenuTypeEnum;

}
